﻿#region License

//
// Author: Javier Lozano <javier@lozanotek.com>
// Copyright (c) 2009-2010, lozanotek, inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//   http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//

#endregion

namespace MvcTurbine.StructureMap.Tests {
    using ComponentModel;
    using ComponentModel.Tests;
    using ComponentModel.Tests.Components;
    using global::StructureMap;
    using global::StructureMap.Configuration.DSL;
    using NUnit.Framework;

    [TestFixture]
    public class StructureMapResolutionTests : ResolutionTests {
        protected override IServiceLocator CreateServiceLocator() {
            var registry = new Registry();

            registry.ForRequestedType(typeof (ILogger))
                .TheDefaultIsConcreteType(typeof (SimpleLogger))
                .WithName(typeof (SimpleLogger).FullName);
            registry
                .ForRequestedType(typeof (ILogger))
                .AddConcreteType(typeof (ComplexLogger),
                typeof (ComplexLogger).FullName);
            return new StructureMapServiceLocator(new Container(registry));
        }
    }
}